#define _CRT_SECURE_NO_WARNINGS
//#include<stdio.h>
//#include<stdlib.h>
//int main()
//{
//	int* p = (int*)malloc(10 * sizeof(int));
//	int i = 0;
//	if (p == NULL) return 1;
//	for (i = 0; i < 10; i++)*(p + i) = i;
//	for (i = 0; i < 10; i++) {
//		printf("%d ", *(p + i));
//	}
//	free(p);
//	return 0;
//}

//#include<stdio.h>
//#include<stdlib.h>
//int main()
//{
//	int* p = (int*)calloc(10, sizeof(int));
//	if (p == NULL)return 1;
//	int i = 0;
//	for (i = 0; i < 10; i++)*(p + i) = i;
//	for (i = 0; i < 10; i++)printf("%d ", *(p + i));
//	printf("\n");
//	int* ptr = (int*)realloc(p, 20 * sizeof(int));
//	if (ptr == NULL)return 1;
//	else p = ptr;
//	for (i = 0; i < 20; i++)*(p + i) = 20 - i;
//	for (i = 0; i < 20; i++)printf("%d ", *(p + i));
//	free(p);
//	return 0;
//}
 
#include<stdio.h>
#include<stdlib.h>
int main()
{
	int (*p)[5] = (int(*)[5])malloc(15 * sizeof(int));
	if (p == NULL)return 0;
	int i, j;
	for (i = 0; i < 3; i++) {
		for (j = 0; j < 5; j++) {
			p[i][j] = i + j;
		}
	}
	for (i = 0; i < 3; i++) {
		for (j = 0; j < 5; j++) {
			printf("%d ", p[i][j]);
		}
		printf("\n");
	}
	free(p);
	return 0;
}
int* getConcatenation(int* nums, int numsSize, int* returnSize) {
	int* p = (int*)malloc(2 * numsSize * sizeof(int));
	if (p == NULL)return NULL;
	int i;
	for (i = 0; i < numsSize; i++) {
		p[i] = nums[i];
	}
	for (i = 0; i < numsSize; i++) {
		p[i + numsSize] = nums[i];
	}
	*returnSize = numsSize * 2;
	return p;
}